[Swift 3.0] Server Side Swift PerfectをAWSのEC2で稼働させてみました
Server Side Swift Perfect
こんにちは!
モバイルアプリサービス部の田中孝明です。
WWDC 2016のGoing Server-side with Swift Open Sourceでも語られているとおり、SwiftはServer Sideの言語としても注目されてきています。
今回はServer Side Swift用のfremeworkの一つPerfectを使用してみようと思います。
PerfectはAWSで稼働できるように整備されたAMIを提供しており、簡単にWebServerとして試してみることができます。
AWS Buildpack for Perfect and Swift
AWS向けのパッケージに関してはAWS Buildpack for Perfect and Swiftに記載されています。
AWSのマネージメントコンソールにログインし、EC2のAMIからus-east-1リージョンにあるパブリックイメージからperfect-ubuntu-1510
を検索します。
検索したインスタンスに対し任意のキーペア
とセキュリティグループ
を選択し起動します。
セキュリティグループ
のインバウンドルールに「HTTP」を忘れずに追加しておきます。
起動したインスタンスにログインします。
sudo ssh -i ~/.ssh/xxxxx.pem ubuntu@xx.xxx.xx.xxx
サーバーの設定
サーバーの動作確認にPerfectTemplateを使用して動作確認をします。
執筆時点でビルドにはるSwift 3.0のDEVELOPMENT-SNAPSHOT-2016-08-26-a
が必要でした。
初期でインストールされているのがSwift 2.2になりますので、ビルドするためにサポートされているSwift 3.0のSNAPSHOTを取得します。
wget https://swift.org/builds/development/ubuntu1510/swift-DEVELOPMENT-SNAPSHOT-2016-08-26-a/swift-DEVELOPMENT-SNAPSHOT-2016-08-26-a-ubuntu15.10.tar.gz tar xzf swift-DEVELOPMENT-SNAPSHOT-2016-08-26-a-ubuntu15.10.tar.gz
SwiftのPATHを通しておきます。
export PATH=./swift-DEVELOPMENT-SNAPSHOT-2016-08-26-a-ubuntu15.10/usr/bin:"${PATH}"
今回動作確認に使用するPerfectTemplateを取得します。
git clone https://github.com/PerfectlySoft/PerfectTemplate.git
取得したソースコードをビルドします。
cd PerfectTemplate swift build
動作確認
ビルドした結果のファイルを実行します。
swift build
で何も指定しない場合はdebugビルドになります。
.build/debug/PerfectTemplate
あとは起動しているEC2インスタンスのパブリックDNSのポート8181
にブラウザからアクセスしてみます。
http://ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com:8181
PerfectTemplate動作結果である、Hello, world!
が表示されたことを確認しました!
まとめ
今回は起動して、WebServerとしてできるところまで試行しました。
PerfectはMySQLやPostgreSQLを始めとした各DBのConnectorも提供されていますので、機会があれば実際にWebAPIを作成してDBへの読み書きを行って見たいと思います。
参考文献
Perfect
AWS Buildpack for Perfect and Swift
Swift WebフレームワークKituraをDocker on Amazon EC2で動かしてみた